﻿using System;
using System.Collections.Generic;
using Newtonsoft.Json;

namespace InterfaceLiftLib.Models
{
    public class User
    {
        [JsonProperty("id")]
        public int Id { get; protected set; }

        [JsonProperty("username")]
        public string Username { get; protected set; }

        [JsonProperty("twitter")]
        public string TwitterUsername { get; protected set; }

        [JsonProperty("avatar_url")]
        public string AvatarUrl { get; protected set; }

        [JsonProperty("avatar_size_in_bytes")]
        public int AvatarSizeInBytes { get; protected set; }

        [JsonProperty("avatar_width")]
        public int AvatarWidth { get; protected set; }

        [JsonProperty("avatar_height")]
        public int AvatarHeight { get; protected set; }

        [JsonProperty("avatar_mime_type")]
        public string AvatarMimeType { get; protected set; }

        [JsonProperty("bio_html")]
        public string Biography { get; protected set; }

        [JsonProperty("location")]
        public string Location { get; protected set; }

        [JsonProperty("occupation")]
        public string Occupation { get; protected set; }

        [JsonProperty("gender")]
        public string Gender { get; protected set; }

        [JsonProperty("birthdate")]
        public DateTime Birthdate { get; protected set; }

        [JsonProperty("url_external")]
        public string UrlExternalSite { get; protected set; }

        [JsonProperty("url_ifl_profile")]
        public string InterfaceLiftProfileUrl { get; protected set; }

        [JsonProperty("url_ifl_wallpapers")]
        public string InterfaceLiftWallpapersUrl { get; protected set; }

        [JsonProperty("date_joined")]
        public DateTime DateJoined { get; protected set; }

        [JsonProperty("wallpaper_id_array")]
        public IEnumerable<int> WallpaperIds { get; protected set; }

        [JsonProperty("camera_id_array")]
        public IEnumerable<int> CameraIds { get; protected set; }

        [JsonProperty("lens_id_array")]
        public IEnumerable<int> LensIds { get; protected set; }
    }
}
